package com.ushio.capsuleservice.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 计划实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("tc_plan")
public class Plan {

    @TableId(type = IdType.AUTO)
    private Long id;

    @TableField("user_id")
    private Long userId;

    @TableField("title")
    private String title;

    @TableField("description")
    private String description;

    @TableField("category")
    private String category; // 分类（工作、学习、阅读、写作、思考、运动、其他）

    @TableField("plan_date")
    private String date; // 计划日期 (YYYY-MM-DD 格式)

    @TableField("start_time")
    private String startTime; // 开始时间 (HH:mm 格式)

    @TableField("end_time")
    private String endTime; // 结束时间 (HH:mm 格式)

    @TableField("priority")
    private String priority; // 优先级 (high, medium, low)

    @TableField("status")
    private String status; // 状态 (pending, in-progress, completed, cancelled)

    @TableField("color")
    private String color = "#409EFF"; // 计划颜色 (hex格式)

    @TableField("created_time")
    private LocalDateTime createdTime;

    @TableField("updated_time")
    private LocalDateTime updatedTime;

    // 注意：containerIds 字段不需要在数据库表中存在，因为是一对多关系
    // 可以通过查询关联的容器来获取，或者在VO中处理
    @TableField(exist = false)
    private java.util.List<Long> containerIds;
}